-- kill_monster
-- Created by chengb Oct/31/2015
-- 击杀怪物

-- 内部函数声明
local whenMonsterDie;

-- 关注怪物死亡的事件
EventMgr.register("dungeon_tasks/kill_monster", event.MONSTER_DIE_LOGIC, function(args)
    whenMonsterDie(args);
end);

-- 死亡的回调
whenMonsterDie = function(args)
    local monster = args.monster;
    if not monster then
        return;
    end
    
    local baseClassId = monster:query("base_class_id");

    -- 玩家不在迷宫中
    if not DungeonM.isInDungeon() then
        return;
    end

    -- 获取当前已经领取的迷宫任务
    local tasks = ME.user.dbase:query("dungeon_tasks");
    if type(tasks) ~= 'table' then
        return;
    end

    for id, info in pairs(tasks) do
        repeat
            local config = DungeonTaskM.query(id);
            if config["rule"] ~= "kill_monster" then
                -- 不是本规则的任务
                break;
            end

            if info["target_id"] ~= baseClassId then
                -- 不是该任务需求的怪物
                break;
            end

            if true == DungeonTaskM.isCompleted(id) then
                -- 已经完成了
                break;
            end

            -- 增加进度
            DungeonTaskM.tryComplete(id, 1);

        until true
    end
end

return {

};